package com.ben.maven.test.ocrs.ns.jaxb.sei.v1_0_1;

import com.ben.maven.test.ocrs.ns.jaxb.domain.v1_0_1.DropOffCityListRQ;
import com.ben.maven.test.ocrs.ns.jaxb.domain.v1_0_1.DropOffCityListRS;
import com.ben.maven.test.ocrs.ns.jaxb.domain.v1_0_1.DropOffCountryListRQ;
import com.ben.maven.test.ocrs.ns.jaxb.domain.v1_0_1.DropOffCountryListRS;
import com.ben.maven.test.ocrs.ns.jaxb.domain.v1_0_1.DropOffLocationListRQ;
import com.ben.maven.test.ocrs.ns.jaxb.domain.v1_0_1.DropOffLocationListRS;
import com.ben.maven.test.ocrs.ns.jaxb.domain.v1_0_1.DropOffOpenTimeRQ;
import com.ben.maven.test.ocrs.ns.jaxb.domain.v1_0_1.DropOffOpenTimeRS;
import com.ben.maven.test.ocrs.ns.jaxb.domain.v1_0_1.ExtrasListRQ;
import com.ben.maven.test.ocrs.ns.jaxb.domain.v1_0_1.ExtrasListRS;
import com.ben.maven.test.ocrs.ns.jaxb.domain.v1_0_1.LocationInfoRQ;
import com.ben.maven.test.ocrs.ns.jaxb.domain.v1_0_1.LocationInfoRS;
import com.ben.maven.test.ocrs.ns.jaxb.domain.v1_0_1.PaymentMethodListRQ;
import com.ben.maven.test.ocrs.ns.jaxb.domain.v1_0_1.PaymentMethodListRS;
import com.ben.maven.test.ocrs.ns.jaxb.domain.v1_0_1.PickUpCityListRQ;
import com.ben.maven.test.ocrs.ns.jaxb.domain.v1_0_1.PickUpCityListRS;
import com.ben.maven.test.ocrs.ns.jaxb.domain.v1_0_1.PickUpCountryListRQ;
import com.ben.maven.test.ocrs.ns.jaxb.domain.v1_0_1.PickUpCountryListRS;
import com.ben.maven.test.ocrs.ns.jaxb.domain.v1_0_1.PickUpLocationListRQ;
import com.ben.maven.test.ocrs.ns.jaxb.domain.v1_0_1.PickUpLocationListRS;
import com.ben.maven.test.ocrs.ns.jaxb.domain.v1_0_1.PickUpOpenTimeRQ;
import com.ben.maven.test.ocrs.ns.jaxb.domain.v1_0_1.PickUpOpenTimeRS;
import com.ben.maven.test.ocrs.ns.jaxb.domain.v1_0_1.RentalTermsRQ;
import com.ben.maven.test.ocrs.ns.jaxb.domain.v1_0_1.RentalTermsRS;
import com.ben.maven.test.ocrs.ns.jaxb.domain.v1_0_1.SearchRQ;
import com.ben.maven.test.ocrs.ns.jaxb.domain.v1_0_1.SearchRS;
import com.ben.maven.test.ocrs.ns.jaxb.domain.v1_0_1.VehicleInfoRQ;
import com.ben.maven.test.ocrs.ns.jaxb.domain.v1_0_1.VehicleInfoRS;

public interface OcrsIntf {

	/**
	 * 取车国家列表请求
	 * @status OK
	 * @param pickUpCountryListRQ
	 * @return
	 * @throws Exception 
	 */
	public PickUpCountryListRS pickUpCountryListService(PickUpCountryListRQ pickUpCountryListRQ) throws Exception;
	
	/**
	 * 取车城市请求（要查询可取车（租车）城市的国家，请求时给出国家，响应时返回该国家可取车（租车）城市）
	 * @status OK
	 * @param pickUpCityListRQ
	 * @return
	 * @throws Exception 
	 */
	public PickUpCityListRS pickUpCityListService(PickUpCityListRQ pickUpCityListRQ) throws Exception;
	
	/**
	 * 取车点列表请求
	 * @status OK
	 * @param pickUpLocationListRQ
	 * @return
	 * @throws Exception 
	 */
	public PickUpLocationListRS pickUpLocationListService(PickUpLocationListRQ pickUpLocationListRQ) throws Exception;
	
	/**
	 * 还车国家列表
	 * @status OK
	 * @param dropOffCountryListRQ
	 * @return
	 * @throws Exception 
	 */
	public DropOffCountryListRS dropOffCountryListService(DropOffCountryListRQ dropOffCountryListRQ) throws Exception;
	
	/**
	 * 还车城市列表请求
	 * @status OK
	 * @param dropOffCityListRQ
	 * @return
	 * @throws Exception 
	 */
	public DropOffCityListRS dropOffCityListService(DropOffCityListRQ dropOffCityListRQ) throws Exception;
	
	/**
	 * 还车点列表请求
	 * @status OK
	 * @param dropOffLocationListRQ
	 * @return
	 * @throws Exception 
	 */
	public DropOffLocationListRS dropOffLocationListService(DropOffLocationListRQ dropOffLocationListRQ) throws Exception;
	
	/**
	 * 取车开放时间请求
	 * @status OK
	 * @param pickUpOpenTimeRQ
	 * @return
	 * @throws Exception 
	 */
	public PickUpOpenTimeRS pickUpOpenTimeService(PickUpOpenTimeRQ pickUpOpenTimeRQ) throws Exception;
	
	/**
	 * 还车开放时间请求
	 * @status OK
	 * @param dropOffOpenTimeRQ
	 * @return
	 * @throws Exception 
	 */
	public DropOffOpenTimeRS dropOffOpenTimeService(DropOffOpenTimeRQ dropOffOpenTimeRQ) throws Exception;
	
	/**
	 * 取车点信息请求
	 * @status OK
	 * @param locationInfoRQ
	 * @return
	 * @throws Exception 
	 */
	public LocationInfoRS locationInfoService(LocationInfoRQ locationInfoRQ) throws Exception;
	
	/**
	 * 付款方式列表请求
	 * @status OK
	 * @param paymentMethodListRQ
	 * @return
	 * @throws Exception 
	 */
	public PaymentMethodListRS paymentMethodListService(PaymentMethodListRQ paymentMethodListRQ) throws Exception;
	
	/**
	 * 租车服务条款请求
	 * @status OK
	 * @param rentalTermsRQ
	 * @return
	 * @throws Exception 
	 */
	public RentalTermsRS rentalTermsService(RentalTermsRQ rentalTermsRQ) throws Exception;
	
	/**
	 * 车辆信息请求
	 * @status OK
	 * @param vehicleInfoRQ
	 * @return
	 * @throws Exception 
	 */
	public VehicleInfoRS vehicleInfoService(VehicleInfoRQ vehicleInfoRQ) throws Exception;
	
	/**
	 * 额外服务列表请求
	 * @status OK
	 * @param extrasListRQ
	 * @return
	 * @throws Exception 
	 */
	public ExtrasListRS extrasListService(ExtrasListRQ extrasListRQ) throws Exception;
	
	/**
	 * 搜索请求
	 * @status OK
	 * @param searchRQ
	 * @return
	 * @throws Exception 
	 */
	public SearchRS searchService(SearchRQ searchRQ) throws Exception;
	
}
